package cn.donting.jme.utile;

import javax.swing.*;
import java.io.PrintWriter;
import java.io.StringWriter;

public class ErrorUtil {
    public static void showErrorDialog(Exception exception) {
        // 获取异常的堆栈信息
        StringWriter sw = new StringWriter();
        PrintWriter pw = new PrintWriter(sw);
        exception.printStackTrace(pw);
        String stackTrace = sw.toString();

        // 创建 JTextArea 用于显示堆栈信息
        JTextArea textArea = new JTextArea(stackTrace);
        textArea.setEditable(false);

        // 将 JTextArea 放入 JScrollPane 中，以支持滚动
        JScrollPane scrollPane = new JScrollPane(textArea);

        // 显示包含堆栈信息的错误消息框
        JOptionPane.showMessageDialog(null, scrollPane, exception.getMessage(), JOptionPane.ERROR_MESSAGE);
    }
    public static void showErrorDialog(String title, Exception exception) {
        // 获取异常的堆栈信息
        StringWriter sw = new StringWriter();
        PrintWriter pw = new PrintWriter(sw);
        exception.printStackTrace(pw);
        String stackTrace = sw.toString();

        // 创建 JTextArea 用于显示堆栈信息
        JTextArea textArea = new JTextArea(stackTrace);
        textArea.setEditable(false);

        // 将 JTextArea 放入 JScrollPane 中，以支持滚动
        JScrollPane scrollPane = new JScrollPane(textArea);

        // 显示包含堆栈信息的错误消息框
        JOptionPane.showMessageDialog(null, scrollPane, title, JOptionPane.ERROR_MESSAGE);
    }
}
